Normalisasi
NORMALISASI
Normalisasi adalah suatu proses yang bertujuan untuk menciptakan
struktur-struktur entity yang dapat mengurangi redundansi data dan meningkatkan
stabilitas database. Ada dua fungsi normalisasi, yaitu :
1. Dapat digunakan sebagai metodologi dalam menciptakan desain
database.,
2. Dapat digunakan sebagai verifikasi terhadap hasil desain database
yang telah dibuat, baik menggunakan E-R Model atau menggunakan model relasi,
seperti yang anda buat diatas atau dari model yang lain.
Bentuk-bentuk Normalisasi
Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal.
Bentuk normal adalah suatu aturan yang dikenakan pada entity-entity dalam
database dan harus dipenuhi oleh entity-entity tersebut sehingga tercapai
normalisasi. Suatu entity dikatakan dalam bentuk normal apabila entity tersebut
memenuhi aturan pada bentuk normal tersebut.
Proses normalisasi dilakukan secara bertingkat. Pada tingkat ketiga
(Third Normal Form, 3NF) sebenarnya telah dapat menghasilkan suatu rancangan
database yang baik.
Berikut tingkatan bentuk normal dalam proses normalisasi :
• Bentuk Normal Pertama (1NF)
• Bentuk Normal Kedua (2NF)
• Bentuk Normal Ketiga(3NF)
• Bentuk Normal Boyce-Codd (BCNF)
• Bentuk Normal Keempat (4NF)
• Bentuk Normal Kelima (5NF)
Perhatikan gambar berikut :
Terlihat pada gambar diatas, bahwa setiap level normalisasi bergantung
pada level sebelumnya. Misalnya, bentuk normal kedua pasti telah memenuhi
bentuk normal pertama, bentuk normal ketiga pasti telah memenuhi bentuk normal kedua, dan seterusnya.
• Bentuk Normal Pertama (1NF)
Bentuk normal pertama dikenakan pada entity yang belum normal
(Unnormalized
Form). Bentuk tidak normal merupakan kumpulan data yang akan di rekam,
tidak
ada keharusan mengikuti suatu format tertentu, dapat saja tersebut
tidak lengkap
atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan
kedatangannya.
Berikut contoh entity dalam keadaan belum ternormalisasi :
Tabel 3.3 : Bentuk tidak normal
Ada dua kelemahan utama pada bentuk tidak normal diatas :
1. Terdapat attribut yang berulang (duplikat), yaitu attribut
matakulia. Mahasiswa dengan nama Elzar mengambil 2 matakuliah, sementara Si
Fikri mengambil 3 matakuliah dimana matakuliah yang mereka ambil ada yang sama.
2. Terdapat informasi yang meragukan, dimana ada dua baris memiliki
matakuliah yang sama, tapi berbeda nilainya. Sebenernya kedua baris tersebut
menunjukkan dua orang yang sama namanya tapi berbeda nilai.
Bentuk entity diatas harus di rubah menjadi bentuk normal pertama.
Aturan Bentuk Normal Pertama (1NF) :
Suatu entity dikatakan dalam bentuk normal pertama jika setiap attributnya bernilai tunggal
untuk setip barisnya.
Entity diatas, setelah diubah kebentuk normal pertama sesuai dengan
aturan diatas,
dapat berupa sebagai berikut :
Dapat juga seperti berikut :
Tabel 3.4 : Bentuk normal pertama
Terlihat pada entity diatas bahwa setiap attribut telah bernilai
tunggal untuk setiap
barisnya. Tapi redudansi dan adanya informasi yang meragukan masih
belum
teratasi.
• Bentuk Normal Kedua (2NF)
Aturan Bentuk Normal Kedua (2NF) :
Suatu entity dikatakan dalam bentuk normal
pertama jika :
1. Berada pada bentuk normal pertama.
2. Semua attribut bukan kunci memiliki
ketergantungan
fungsional (Depedensi Fungsional) dengan kunci utama
(primary key)
Ketergantungan fungsional adalah suatu attribut X mempunyai
ketergantungan fungsional terhadap attribut Y apabila setiap nilai X berhubungan
dengan sebuah nilai Y. Misalnya Attribut
Nama pada entity Mahasiswa, mempunyai ketergantungan fungsional terhadap
attribut NoBP, karena setiap nama mahasiswa harus mempunyai NoBP.
Pada tahap ini anda harus memilah-memilah dan membagi entity tersebut
menjadi beberapa entity lainnya yang mempunyai kunci utama. Sehingga
masing-masing attribut yang bukan kunci mempunyai ketergantungan fungsional
dengan kunci utama tersebut.
Perhatikan tabel berikut setelah di ubah kedalam bentuk normal kedua :
Entity Mahasiswa
Entity Nilai
Tabel 3.5 : Bentuk normal kedua
Pada gambar diatas terlihat, ada dua entity yang memiliki kunci utama
(atribut
yang bergaris bawah), sehingga attribut-attribut yang lainnya
mempunyai
ketergantungan fungsional terhadapnya.
• Attribut Nama mahasiswa mempunyai ketergantungan fungsional terhadap
attribut NOBP.
• Attribut SKS dan Nilai mempunyai ketergantungan fungsional terhadap
attribut
NoBP dan Kode Matakuliah.
Ternyata rancangan entity baru diatas masih belum benar, khususnya
pada entity
nilai, karena : adanya data
yang berulang, yaitu nama matakuliah dan sks,
Kalau seandai salah mengentrikan data matakuliah dan sks, dapat
mengakibatkan data tidak konsisten lagi.
• Bentuk Normal Ketiga(3NF)
Aturan Bentuk Normal Ketiga (3NF) :
Suatu entity dikatakan dalam bentuk normal pertama jika :
1. Berada pada bentuk normal kedua.
2. Semua attribut bukan kunci tidak memiliki ketergantungan
transitif (Depedensi transitif)
dengan kunci utama (primary
key)
Ketergantungan Transitif
terjadi pada entity yang menggunakan attribut
gabungan sebagai kunci utama. Seperti pada entity nilai pada bentuk
normal
kedua diatas, yang menjadi kunci utama adalah NoBP dan Kode
Matakuliah.
Ketergantungan transitif terjadi bila :
a. Attribut X memiliki ketergantungan fungsional dengan attribut Y.
b. Attribut Z memiliki ketergantungan fungsional dengan attribut X.
Misalnya attribut Kode Matakuliah
pada entiti nilai diatas, mempunyai
ketergantungan fungsional dengan attribut NoBP, Attribut Nama Matakuliah
mempunyai ketergantungan fungsional dengan attribut Kode Matakuliah.
Entity Nilai berikut merupakan contoh entity yang memenuhi normal
kedua tapi
tidak memenuhi bentuk normal ketiga, karena adanya ketergantungan
transitif.
Tabel 3.6 : Ketergantungan transitif
Pada contoh diatas, kunci utama merupakan gabungan antara NoBP dan
Kode
Matakuliah. Attribut matakuliah, sks dan nilai mempunyai
ketergantungan
fungsional terhadap kunci utama tersebut. Namun perlu di perhatikan,
bahwa jika
Kode Matakuliah bernilai sama, Nama Matakuliah juga bernilai sama. Hal ini
menandakan adanya suatu ketergantungan antara kedua attribut tersebut.
Lalu
manakah yang menjadi penentu ? Apakah Kode Matakuliah bergantung pada
Nama matakuliah ? atau sebaliknya. Yang jadi penentu tentulah Kode
Matakuliah, karena kode bersifat unik dan akan berbeda untuk setiap nama
matakuliah. Oleh karena itu entity Nilai harus dibagi lagi agar
memenuhi aturan
bentuk normal ketiga.
Perhatikan tabel berikut setelah di ubah kedalam bentuk normal ketiga
:
Entity Mahasiswa
Entity Nilai
Entity Matakuliah
Tabel 3.7 : Bentuk normal ketiga
Coba anda amati, apakah pada bentuk normal ketiga ini, masih ada
redundansi
dan ketidakkonsistenan data ?
Penerapan aturan normalisasi sampai dengan bentuk ketiga ini,
sebenarnya telah
memenuhi dalam menghasilkan desain database yang berkualitas baik.
Namun
demikian dari sejumlah literatur dapat pula dijumpai pembahasan
tentang bentuk
normal keempat (4NF) dan bentuk
normal kelima (5NF) dan adapula bentuk
normal Boyce-Codd sebagai perbaikan dari bentuk normal ketiga.
Ketiga bentuk normal yang disebut terakhir (Boyce-Codd, 4NF dan 5 NF),
pembahasannya cukup kompleks, tetapi manfaatnya sendiri tidak begitu
besar.
Karena itu tidak terlalu di bahas pada buku ini. Berikut diberikan
aturan umumnya
saja :
• Bentuk Normal Boyce-Codd
(BCNF)
Aturan Bentuk Normal Boyce-Codd (BCNF) :
Suatu entity dikatakan dalam bentuk BCNF jika :
Semua kunci utama adalah kunci kandidat yang bersifat unik
• Bentuk Normal Keempat (4NF)
Bentuk normal keempat berhubungan dengan sifat
ketergantungan banyak nilai (Multivalued Dependency) pada
suatu tabel yang merupakan pengembangan dari
ketergantungan fungsional.
Database Management -
Perancangan Database Relasi
• Bentuk Normal Kelima (5NF)
Bentuk normal kelima berkenaan dengan ketergantungan
relasi antar tabel (Join Depedency).